package uy.com.csi.gestpro.converter;

import javax.faces.bean.ApplicationScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

import uy.com.csi.gestpro.model.ejbremote.UnidadMedidaEjbRemote;
import uy.com.csi.gestpro.model.mantenimiento.GpUndadMdda;
import uy.com.csi.gestpro.util.ServiceLocator;
import uy.com.csi.gestpro.util.UParametro;
import uy.com.csi.gestpro.util.UProperties;

@FacesConverter(value = "unidadMedidaConverter", forClass = GpUndadMdda.class)
@ApplicationScoped
public class UnidadMedidaConverter implements Converter {
	@Override
	public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
		GpUndadMdda undadMedda = null;
		if (arg2 != null && arg2.length() > 0) {
			try {
				Integer id = Integer.parseInt(arg2);
				ServiceLocator sl = new ServiceLocator();
				UnidadMedidaEjbRemote ejbUm = (UnidadMedidaEjbRemote) sl.findServiceRemote(UProperties.getMessage(UParametro.RUTA_JNDI, "UNIDAD_MEDIDA"),
						UnidadMedidaEjbRemote.class.getName());
				undadMedda = ejbUm.getUnidadMedidaBtId(id);
				return undadMedda;
			} catch (NumberFormatException e) {
				return null;
			}
		}
		return null;
	}

	@Override
	public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
		if (arg2 != null) {
			return String.valueOf(((GpUndadMdda) arg2).getId());
		}
		return null;
	}
}
